package main

import (
	"fmt"
)

func main() {
	var arr [3]int
	for i := range arr {
		fmt.Println(arr[i])
	}
	//声明一个slice是一个切片，并且初始化，默认值是1,2,3,长度是3
	//slice1 := []int{1, 2, 3}

	//声明一个slice,没有分配空间 通过slice1==nil判断是否一个空切片
	//var slice1 []int
	//通过make来分配3个空间
	var slice1 = make([]int, 3)
	fmt.Printf("led=%d,slice=%v\n", len(slice1), slice1)
	//创建切片
	numbers := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
	printSlice(numbers)

	/* 打印子切片从索引1(包含) 到索引4(不包含)*/
	fmt.Println("number[1:4]==", numbers[1:4])
	/* 默认下限为 0*/
	fmt.Println("numbers[:3] ==", numbers[:3])
	/* 默认上限为 len(s)*/
	fmt.Println("numbers[4:] ==", numbers[4:])

	numbers1 := make([]int, 0, 5)
	printSlice(numbers1)
	/* 打印子切片从索引  0(包含) 到索引 2(不包含) */
	number2 := numbers[:2]
	printSlice(number2)

	/* 打印子切片从索引 2(包含) 到索引 5(不包含)  子切片cap为startindex到最后一个元素的长度大小*/
	number3 := numbers[2:5]
	printSlice(number3)
}
